package org.znxs.znxsframe.utils;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * 本项目中的 自定义 String工具类
 */
public class BIStrUtils {

    /**
     * 使用正则表达式提取指定字符或字符串包含的内容
     *
     * @param regex      正则表达式
     * @param goalObj    目标提取字符串
     * @param startIndex 额外读取位次 例如从提取后第几位开始读取
     * @return 提取的字符串
     */
    public static String subStrByRegex(String regex, String goalObj, int startIndex) {
        // 编译正则表达式
        Pattern pattern = Pattern.compile(regex, Pattern.DOTALL);
        Matcher matcher = pattern.matcher(goalObj);
        // 使用 List 来存储匹配到的内容
        List<String> matches = new ArrayList<>();
        // 查找所有匹配的内容
        while (matcher.find()) {
            matches.add(matcher.group(1)); // 添加匹配到的内容
        }
        // 提取对象字符串
        return matches.get(0).substring(startIndex);
    }

}
